Embodiments of the present invention relate to development environments and, more specifically, to dynamic setup of development environments.
Often, programmers need to set up development environments for their projects, where a project can include software source code, associated metadata, build instructions, compiler and linker settings and preferences, scripts, and packaging necessary to build or deploy software source code as an executable. When setting up the development environment, programmers must make decisions that will impact their productivity. These decisions include selection of an integrated development environment (IDE) (e.g., Eclipse, NetBeans, XCode, or Visual Studio), a platform to support the codebase of the project, and other options. Problems can arise if a programmer makes a mistake in these decisions. For instance, the code of the project may not compile.
These decisions are not always straight forward, especially for novice programmers. Novice programmers may not know that different IDEs can have different resource consumption and strengths toward certain codebases. For instance, a codebase with ten thousand lines of code in Java or with mixed languages is likely more suited to a heavy weight IDE, such as Eclipse. In contrast, given a codebase with five hundred or fewer lines in pure Java, it might make more sense to select a lighter weight IDE, such as BlueJ.
Further, different computing devices can have different requirements and available resources, and thus, an IDE choice for one device might not be appropriate for another even given the same project. For instance, a netbook has substantially different resource availability for running an IDE than does a full developer workstation with triple high-definition monitors.